﻿//#include <iostream>
//using namespace std;
//void  find(int* num, int n, int &minindex, int &maxindex);
//int main()
//{
//    int t, arr[10000], n,minindex=0,maxindex=0;
//    int* num = arr;
//    cin >> t;
//    for (int i = 0; i < t; i++)
//    {
//        int minindex = 0, maxindex = 0;
//        cin >> n;
//        for (int j = 0; j < n; j++)
//        {
//            cin >> arr[j];
//        }
//        find(arr, n, minindex, maxindex);
//        cout <<"min="<< arr[minindex]<<" "<<"minindex="<< minindex<<endl;
//        cout << "max=" << arr[maxindex]<<" " << "maxindex=" << maxindex << endl;
//    }
//    return 0;
//}
//void  find(int * num, int n, int &minindex, int &maxindex)
//{
//    for (int i = 0; i < n; i++)
//    {
//        if (num[i] > num[maxindex])
//        {
//            maxindex = i;
//        }
//    }
//    for (int j = 0; j < n; j++)
//    {
//        if (num[j] < num[minindex])
//        {
//            minindex = j;
//        }
//    }
//}

//#include <iostream>
//using namespace std;
//struct student
//{
//	char name[100];
//	char terminal[100];
//	char opera[100];
//	char card[100];
//	char validity[100];
//	char number[100];
//	char traded[100];
//	char costs[100];
//};
//int main()
//{
//	int t;
//	cin >> t;
//	for (int i = 0; i < t; i++)
//	{
//		student person;
//		cin >> person.name >> person.terminal >> person.opera >> person.card >> person.validity >> person.number >> person.traded >>person.costs;
//		cout << "Name: " << person.name << endl;
//		cout << "Terminal: " << person.terminal << " " << "operator: " << person.opera << endl;
//		cout << "Card Issuers: " << person.card << " "<< "Validity: " << person.validity << endl;
//		cout << "CardNumber: ";
//		for (int i = 0; i < 4; i++)
//		{
//			cout << person.number[i];
//		}
//		for (int i = 0; i < 8; i++)
//		{
//			cout << "*";
//		}
//		for (int i = 12; i < 16; i++)
//		{
//			cout << person.number[i];
//		}
//		cout << endl;
//		cout << "Traded: " << person.traded << endl;
//		cout << "Costs: $" << person.costs << endl;
//		cout << endl;
//	}
//	return 0;
//}
//#include <iostream>
//using namespace std;
//struct Bir
//{
//	int year;
//	int month;
//	int day;
//};
//int main()
//{
//	int t;
//	cin >> t;
//	Bir bir[6];
//	for (int i = 0; i < t; i++)
//	{
//		cin >> bir[i].year >> bir[i].month >> bir[i].day;
//	}
//	for (int i = 0; i < t-1; i++)
//	{
//		for (int j = 0; j < t - 1 - i; j++)
//		{
//			if (bir[j].year < bir[j + 1].year)
//			{
//				Bir temp;
//				temp = bir[j];
//				bir[j] = bir[j + 1];
//				bir[j + 1] = temp;
//			}
//			 if(bir[j].year == bir[j + 1].year&&bir[j].month<bir[j+1].month)
//			{
//				Bir temp;
//				temp = bir[j];
//				bir[j] = bir[j + 1];
//				bir[j + 1] = temp;
//			}
//			 if(bir[j].year == bir[j + 1].year && bir[j].month == bir[j + 1].month&& bir[j].day < bir[j + 1].day)
//			{
//				Bir temp;
//				temp = bir[j];
//				bir[j] = bir[j + 1];
//				bir[j + 1] = temp;
//			}
//		}
//	}
//	cout << bir[t-2].year <<"-"<< bir[t-2].month <<"-" <<bir[t-2].day << endl;
//	return 0;
//}
//#include <iostream>
//#include <cstring>
//using namespace std;
//
//struct stu
//{
//	char num[1000];
//	char so1[100];
//	char so2[100];
//	char so3[100];
//};
//int compare(stu* p, stu* pc);
//int main()
//{
//	int t;
//	cin >> t;
//	stu person[100];
//	for (int i = 0; i < t; i++)
//	{
//		cout << person[i].num;
//		cout << person[i].so1;
//		cout << person[i].so2;
//		cout << person[i].so3;
//	}
//	for (int i = 0; i < t; i++)
//	{
//		for (int j = i+1; j < t; j++)
//		{
//			int r=compare(&person[i], &person[j]);
//			if (r != 1)
//			{
//				cout << r;
//				break;
//			}
//		}
//	}
//	return 0;
//}
//int compare(stu* p, stu* pc)
//{
//	int count = 0;
//	int len1 = strlen(p->so1);
//	int len2 = strlen(p->so1);
//	for (int i = 0; i < len1; i++)
//	{
//		if ((*p).so1[i] == (*pc).so1[i])
//		{
//			count++;
//		}
//	}
//	if (count >= (0.9 * len1) || count >= (0.9*len2))
//	{
//		return 1;
//	}
//	else
//	{
//		return 0;
//	}
//	int count1 = 0;
//	for (int i = 0; i < strlen(p->so2); i++)
//	{
//		if ((*p).so2[i] == (*pc).so2[i])
//		{
//			count1++;
//		}
//	}
//	if (count >= (0.9 * strlen(p->so2)) || count >= (0.9 * strlen(pc->so2)))
//	{
//		return 2;
//	}
//	else
//	{
//		return 0;
//	}
//	int count3 = 0;
//	for (int i = 0; i < strlen(p->so3); i++)
//	{
//		if ((*p).so3[i] == (*pc).so3[i])
//		{
//			count3++;
//		}
//	}
//	if (count >= (0.9 * strlen(p->so3)) || count >= (0.9 * strlen(pc->so3)))
//	{
//		return 3;
//	}
//	else
//	{
//		return 0;
//	}
//}
#include <iostream>
#include <iomanip>
#include <math.h>
using namespace std;
//类定义 类实现
class circle
{
public:
	void set1(int r)
	{
		_r = r;
	}
	void setRadius(int x,int y)
	{
		_x = x; _y = y;
	}
	void getArea()
	{
		double s = 3.14 * _r * _r;
		cout << fixed << setprecision(2) << s << " ";
	}
	void getLength()
	{
		double length = 2 * 3.14 * _r;
		cout << fixed << setprecision(2) << length << " ";
	}
	
private:
	int _r;
	int _x;
	int _y;
};
class point
{
public:
	void set2(int x1, int y1)
	{
		 _x1 = x1; _y1 = y1;
	}
	void contain(point)
	{
		double h = sqrt((_x1 - _x) * (_x1 - _x) + (_y1 - _y) * (_y1 - _y));
		if (h <= _r)
		{
			cout << "yes" << endl;
		}
		else
		{
			cout << "no" << endl;
		}
	}
private:
	int _x, _y, _x1, _y1, _r;
};
//主函数
int main()
{
	int x, y, r;
	cin >> r>>x>>y;
	circle circle1;
	circle1.set1(r);
	circle1.setRadius(x, y);
	circle1.getArea();
	circle1.getLength();
	int x1, y1;
	point point1;
	cin  >> x1 >> y1;
	point1.set2( x1, y1);
	point1.contain(point1);
	return 0;
}